package com.yuw.action;

import com.yuw.bean.UserInfoBean;
import com.yuw.service.IUserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;

@Controller
public class UserInfoAction {

    // 进行依赖注入
    //@Autowired
    @Resource
    private IUserInfoService userInfoService;

    /**
     * 要求form表单的表单控件的name属性值和action中的handler方法中的java实体类类型的形参参数的属性名保持一致；
     * 则可以直接将表单数据传递给action方法的形参参数
     * 推荐使用的常用方式
     *
     * @param userInfoBean
     * @return
     */
    @RequestMapping("/doLogin")
    public ModelAndView doLogin(UserInfoBean userInfoBean) {
        System.out.println("登录用户名：" + userInfoBean.getUsername() + ";密码：" + userInfoBean.getUserpsw());
        ModelAndView mav = new ModelAndView();
        // 调用service层进行用户登录信息的合法性验证
        boolean isOK = userInfoService.isLogined(userInfoBean);
        // 根据业务逻辑处理结果，跳转不同的view
        if (isOK) {
            // 登录成功，进入主页面,并缓存登录成功的用户信息
            mav.setViewName("logined");
            mav.addObject("loginedUserName",userInfoBean.getUsername());
        } else {
            // 登录失败，继续回到登录页面
            mav.setViewName("../../index");
        }
        return  mav;
    }


}
